﻿// 文件名：函数和二维数组
// 创建时间：2021/6/21/星期一 15:27:32

#include <iostream>
using namespace std;


int sum(int arr2[][4], int size)
{
	int total = 0;
	for (int i = 0; i < size; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			total += arr2[i][j];
		}
	}
	return total;
}

int main()
{

	int a[6][4] = { {1,2,3,4} ,{5,6,7,8},{1,2,3,4},{5,6,7,8},{1,2,3,4},{5,6,7,8} };
	int b[3][4] = { {1,2,3,4} ,{5,6,7,8},{1,2,3,4} };
	int total1 = sum(a, 6);//指针类型确定了a的列数为4，指定行数为6，计算a全部数据之和
	cout << "sum(a,6) = " << total1 << endl;
	int total2 = sum(a, 4);//计算a的前4行数据之和
	cout << "sum(a,4) = " << total2 << endl;
	int total3 = sum(b, 3);//计算b全部数据之和
	cout << "sum(b,3) = " << total3 << endl;
	int total4 = sum(a + 2, 4);//计算a后四行数据之和
	cout << "sum(a+2,4) = " << total4 << endl;

	/*
	1、arr2——代表指向数组第一行（由四个元素构成）、
	2、arr2+r——代表指向编号为r的一行（由四个元素组成），相当于&arr2[r]
	3、*(arr2+r)——解引用操作，代表编号为r的一行，相当于arr2[r]
	4、*(arr2+r)+c——代表指向第r行的第c个元素，是一个指针，相当于arr2[r]+c
	5、*(*(arr+r)+c)——代表第r行第c列的元素，相当于arr2[r][c]
	*/

	system("pause");
	return 0;
}